home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / a_utils / ffccflow / ffccflow.lha / ffccc+flow / ffccc / floppy.helpcms < prev    next >
Text File  |  1992-07-31  |  10KB  |  193 lines

  1. .cm CAT:CMS
  2. .cm NAM:FLOPPY
  3. .cm EXP: Fortran Coding Convention Checker
  4. .cm DAT: 87.09.20
  5. .cm A/R: J.J.Bunn
  6. .cm KEY: FLOP TREE TIDY CONVENTION RULE FORTRAN
  7. .cm ABS: A program which checks a Fortran program against
  8. .cm ABS: a pre-defined set of coding conventions.
  9. .cm ABS: Options to tidy the source Fortran and to write
  10. .cm ABS: an input file for FLOW (a separate utility) are
  11. .cm ABS: provided.
  12. .cm FLG: LOCAL
  13. .cm END:
  14.  
  15.  
  16. FLOPPY (Coding Convention Checker)
  17.  
  18.  
  19. FLOPPY is used to check that a body of Fortran code complies with a set
  20. of coding conventions. This is done by parsing the Fortran using FLOP
  21. (see DD/US/13 Flop User's Guide by H.Grote) and then analysing the
  22. structure against the specified set of instructions.
  23. In addition, FLOPPY may be used to 'tidy' the source Fortran, in other
  24. words to indent the DO/IF clauses, renumber the statement labels, and so
  25. It may also be used to produce an analysis file which is interpreted late
  26. by the TREE utility (type HELP TREE for details). The TREE utility is
  27. capable of giving a graphical representation of the subroutine calling
  28. tree in the source Fortran, as well as for analysing the usage of COMMON
  29. block variables.
  30.  
  31. FLOPPY is used as follows:
  32.  
  33. +--------+--------------------------------------------------------------+
  34. |        |                                                              |
  35. | FLOPPY | [ ? | fn [ft [fm]] [( Options ]]                             |
  36. |        |                                                              |
  37. |        | Options:                                                     |
  38. |        |                                                              |
  39. |        | [CHECKS {STANDARD|NONE|ALEPH|GALEPH|ONLINE|LIST|number_list}]|
  40. |        | [DISK]                                                       |
  41. |        | [FULL]                                                       |
  42. |        | [GOTOS]                                                      |
  43. |        | [GROUPF]                                                     |
  44. |        | [IGNORE]                                                     |
  45. |        | [INDENT    spaces]                                           |
  46. |        | [OLD       fn ft fm]                                         |
  47. |        | [OUTPUT    fn ft fm]                                         |
  48. |        | [RENUMF    start_value[,step_value]]                         |
  49. |        | [RENUMS    start_value[,step_value]]                         |
  50. |        | [TIDY]                                                       |
  51. |        | [TREE]                                                       |
  52. +--------+--------------------------------------------------------------+
  53.  
  54. where:
  55.  
  56.           When FLOPPY is entered without any parameters a panel will be
  57.           displayed in which details of the Floppy job may be entered.
  58.  
  59. ?         If this is the only operand this HELP file will be displayed.
  60.  
  61. Fn Ft Fm  The file name of the Fortran on which Floppy is to operate.
  62.  
  63. CHECKS    STANDARD     The standard set of coding conventions are checked
  64.                        These are the ones marked by a (*) in the list
  65.                        below (in Usage Notes).
  66.  
  67.           NONE         No coding conventions will be checked. This option
  68.                        is useful with the TREE option.
  69.  
  70.           LIST         The user will be prompted for a list of those
  71.                        coding conventions he wishes to check.
  72.  
  73.           ALEPH        Specifies that the set of conventions is that
  74.                        agreed on by the Aleph Offline Group.
  75.  
  76.           GALEPH       Specifies that the set of conventions is as for
  77.                        the ALEPH qualifier, but additionally all names
  78.                        beginning G..... or IG.... will be ignored.
  79.  
  80.           ONLINE       This qualifier is not yet implemented.
  81.  
  82.           number_list  Numbers should correspond to the numbers in the
  83.                        list given below. Specifying 99 indicates that
  84.                        all the checks are to be made. Specifying a
  85.                        negative number means that the corresponding
  86.                        convention will not be checked. So for example
  87.                        CHECKS 99,-1,-20 will cause all conventions
  88.                        except 1 and 20 to be checked.
  89.  
  90. DISK      Inclusion of this option causes the output from Floppy to be
  91.           written to a file.
  92.  
  93. FULL      Specifying this option causes Floppy to print all source Fortra
  94.           statements, instead of just those in breach of the coding
  95.           conventions checked (which is the default).
  96.  
  97. GOTOS     Inclusion of this option causes the GOTO statements in the sour
  98.           Fortran to be right adjusted in the new Fortran file.
  99.  
  100. GROUPF    Causes all FORMAT statements that appear in each subroutine to
  101.           grouped at the end of the subroutine in the new Fortran file.
  102.  
  103. IGNORE    If this option is invoked, then the user will be prompted for a
  104.           list of variable and/or subroutine/function names which he woul
  105.           like to be ignored when Floppy checks the coding conventions.
  106.           This is particularly useful when Floppy is run on external code
  107.           containing names over which the user has no control, for exampl
  108.           HBOOK calls.
  109.  
  110. INDENT    Inclusion of this option causes all DO and IF clauses to be
  111.           indented by nn spaces, according to their level of nesting.
  112.  
  113. OLD       The file name given with this qualifier should refer to an
  114.           existing 'FLOPIGN' file, created by a previous Floppy run.
  115.           The FLOPIGN file contains the list of coding convention numbers
  116.           together with a list of any specified names to be ignored, and
  117.           is created automatically when Floppy is run. Specify this
  118.           option if you have a particularly complex Floppy environment
  119.           that you do not want to re-create each Floppy run.
  120.  
  121. OUTPUT    The file name given with this option will be the file to
  122.           which the 'tidied' Fortran is written. By default this file
  123.           has the name 'OUTPUT FORTRAN A'.
  124.  
  125. RENUMF    Specifying this option together with a value for START and STEP
  126.           will cause all FORMAT statements to be renumbered, beginning at
  127.           value START and stepping by STEP.
  128.  
  129. RENUMS    Specifying this option together with a value for START and STEP
  130.           will cause ALL statements to be renumbered, beginning at
  131.           value START and stepping by STEP.
  132.  
  133. TIDY      This option is automatically selected when any of GOTOS, INDENT
  134.           GROUPF, RENUMF, RENUMS are selected on the command line.
  135.  
  136. TREE      Specifying this option causes an analysis file to be written
  137.           which may be used as input to the TREE utility. If all the user
  138.           requires from Floppy is this analysis file, then he should
  139.           specify CHECKS NONE, to avoid Floppy wasting time making any
  140.           coding convention checks.
  141.  
  142.  
  143. Usage Notes
  144.  
  145.   Here follows the list of coding conventions which may at present
  146.   be checked by Floppy. The conventions in the STANDARD set are
  147.   marked by an asterisk (*).
  148.  
  149.           *  1   Avoid comment lines after end of module
  150.           *  2   End all program modules with the END statement
  151.           *  3   Declared COMMON blocks must be used in the module
  152.           *  4   COMPLEX and DOUBLEPRECISION vars at end of COMMON
  153.           *  5   COMMON block definitions should not change
  154.           *  6   Variable names should be 6 or fewer characters long
  155.              7   Variables in COMMON should be 6 characters long
  156.              8   Variables not in COMMON should be <6 characters
  157.           *  9   Integer variables should begin with I to N
  158.           *  10  Variable names should not equal FORTRAN keywords
  159.           *  11  Avoid comment lines before module declaration
  160.           *  12  Module names should not equal intrinsic functions
  161.           *  13  First statement in a module should be declaration
  162.           *  14  Module should begin with at least 3 comment lines
  163.              15  Comment lines should begin with a C
  164.           *  16  No comment lines between continuations
  165.           *  17  Avoid non-standard variable types eg INTEGER*2
  166.           *  18  Avoid multiple COMMON definitions per line
  167.           *  19  Do not dimension COMMON variables outside COMMON
  168.           *  20  Avoid embedded blanks in variable names
  169.           *  21  Avoid embedded blanks in syntactic entities
  170.           *  22  Avoid the use of PRINT statements (use WRITE)
  171.              23  Do not give the END statement a label
  172.           *  24  Avoid WRITE(* construction
  173.              25  Avoid WRITE statement in a FUNCTION
  174.           *  26  Avoid the use of PAUSE statements
  175.           *  27  Statement labels should not begin in column 1
  176.           *  28  Always precede STOP by a descriptive WRITE
  177.           *  29  Avoid the use of ENTRY in FUNCTIONS
  178.           *  30  Avoid using I/O in FUNCTIONs
  179.              31  Avoid the use of the alternate RETURN statement
  180.           *  32  COMMON block names should not equal variable names
  181.           *  33  Avoid use of obsolete CERN library routines
  182.              34  Avoid FUNCTION names the same as intrinsics
  183.           *  35  Local functions should be declared EXTERNAL
  184.           *  36  Module names should all be different
  185.           *  37  Avoid expressions of mixed mode eg A=B/I
  186.           *  38  Length of passed CHARACTER variables should be *
  187.           *  39  Order of statements should conform to note
  188.           *  40  Separate Statement Functions by comment lines
  189.           *  41  No names in Statement Function definitions elsewhere
  190.              42  Use LLT,LGT etc to compare CHARACTER vars. in IFs
  191.              43  Variables (not COMMON, not PARAMs) <6 characters
  192.           *  44  Passed arguments should be dimensioned * in module
  193.